package com.zhuanzhuan.hero.user.facade;

import com.bj58.spat.scf.server.contract.annotation.ServiceContract;
import com.bj58.zhuanzhuan.zzentry.common.service.entity.ServiceHeaderEntity;
import com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult;
import com.bj58.zhuanzhuan.zzentry.common.service.model.openEntry.ZZHeader;
import com.bj58.zhuanzhuan.zzentry.common.service.model.openEntry.ZZParam;
import com.zhuanzhuan.hero.user.vo.AppInitConfAndroidVO;
import com.zhuanzhuan.hero.user.vo.AppInitConfVO;
import com.zhuanzhuan.hero.user.vo.AppUpgradesVersionVO;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @ClassName IAppInitFacade
 * @Description
 * @Author hanjunjun
 * @Date 2024/7/13 10:38
 */
@ServiceContract
public interface IAppInitFacade {

    /**
     * app初始化接口
     *
     * @param header
     * @param deviceTokenStr  设备token
     * @param osVersion  系统版本
     * @param imei  安卓设备IMEI
     * @param idfa  IOS设备IDFA
     * @return com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult<com.zhuanzhuan.hero.user.vo.AppInitConfVO>
     * @author  hanjunjun  
     * @date 2024/7/13       
     **/
    ZZOpenScfBaseResult<AppInitConfVO> getAppInitConfig(
        @ZZHeader ServiceHeaderEntity header, @NotNull @ZZParam("deviceToken") String deviceTokenStr,
        @NotNull @ZZParam("osVersion") String osVersion, @ZZParam("imei") String imei,
        @ZZParam("idfa") String idfa);


    /**
     * 安卓app初始化接口
     * @param header header
     * @return 版本号
     */
    ZZOpenScfBaseResult<List<AppInitConfAndroidVO>> getAppInitConfigAndroid(@ZZHeader ServiceHeaderEntity header);


    /**
     * app端内强制更新接口
     * @param header header
     * @return 返回对象
     */
    ZZOpenScfBaseResult<AppUpgradesVersionVO> getAppUpdateConfig(@ZZHeader ServiceHeaderEntity header);

}
